【セッションレポート】AWS を活用した車載ソフトウエア開発ソリューションと自動車メーカー様事例(AWS-22) #AWSSummit
みなさんこんにちは、杉金です。
本記事は、2024年6月20-21日の2日間にわたって開催された AWS Summit Japan 2024 のセッションレポートです。
セッション視聴
セッションはオンデマンドで視聴可能です。公開期限は2024年7月5日(金)までとなっておりますので、視聴される場合はお早めにアクセスしてください。
セッション概要
自動車業界では、CASE 対応によりソフトウェア規模が爆発的に増大しています。Software-Defined Vehicle は、増大する開発コストやソフトウエアの複雑化を抑えるとともに、ソフトとハードを分離することで、量産後も柔軟にソフトウエアを更新可能にすることを期待されています。自動車メーカーは、この変化に伴い、車載ソフトウエアの開発を可能な限り AWS クラウド上で行い、現在の開発が抱える様々な問題を解決しています。AWSでは、自動車業界の車載ソフトウエア開発を支援するために、ツールベンダー様との連携を強化し、ソリューションの開発を行っています。本セッションでは、車載ソフトウェア開発に関わる方に向けて、開発の課題をAWS クラウドを利用して解決するためのソリューションや事例をご紹介します。
スピーカー
アマゾン ウェブ サービス ジャパン合同会社
AWS Industries,Automotive & Manufacturing
シニアソリューションアーキテクト
國政 丈力 氏
セッションレポート
SDVの世界へ
はじめに、國政氏より自動車業界におけるSDV(Software-defined vehicle)への変革が語られました。これまでの車両はハードウェアを中心とした開発が主で、ECU(Electronic Control Unit)が各種機能を提供してきました。SDVではハードウェアで実現してきたものをソフトウェアで実現します。
ソフトウェア化の背景には、車に求められる機能が高度化、多様化していることがあります。自動運転、モビリティサービス、コネクテッドカーなどの近年耳にするキーワードが関連します。 高度化、多様化によって柔軟な機能のアップデートが求められます。大量のマシンに対してハードウェアを更新するよりもソフトウェアを更新する方が容易です。ソフトウェアの追加やセキュリティモジュールを更新したい場合、ソフトウェアをアップデートすることで実現できます。
ソフトウェア化に伴ってECUは減少し、コードの行数は増えていく状況が進んでいます。その傾向は今後も継続すると予想されていました。 したがって、ソフトウェアを効率的に管理することが今後重要になると氏は述べられていました。
ソフトウェア品質向上を阻害する5つのもの
自動車ソフトウェア開発における、品質向上を妨げる要因を5つ紹介されました。
- 一貫性のない開発環境
- 多数のツールを利用
- 複雑な環境セットアップ
- 長いフィードバックループ
- ハードウェアに依存した開発
本レポートでは2つほどピックアップして紹介します。
複雑な環境セットアップは、多数のツールを利用することでセットアップが難しくなり、セットアップが自動化されていない場合に手動のセットアップが必要になります。その際も、導入しようとしているソフトが古いバージョンでセキュリティに問題があったり、導入しようとするOSと互換性がなく動作しなかったりします。
ハードウェアに依存した開発は、従来のECU上での開発では、ハードウェアを入手できないと開発できないという問題を抱えています。また、開発ボードを入手しても数に限りがあるため、誰でもいつでも自由に使えるわけではありません。誰が使用するかの予約や在庫管理が必要になります。ハードウェアが動作不良になってリセットしたい場合、ロケーションが離れているとメールやチャットで依頼が必要になってきます。
これらの阻害する要因をクラウドを使って解決できるとしたらクラウドを使ってみたいと思うかと視聴者に問いかけました。
クラウドネイティブがもたらす自動車ソフトウェア開発の価値とは
クラウドを利用するといっても複数の選択肢があります。本セッションでは次の3つを紹介されました。
- 仮想ECUによるハードウェアに依存しない開発
- 柔軟でオンデマンドな開発環境
- 先進機能の開発に最新技術を活用
仮想ECUによるハードウェアに依存しない開発は、ハードウェア中心で開発していた環境をソフトウェアで実現します。CI・CDのパイプラインを組むことで開発効率を高められます。
柔軟でオンデマンドな開発環境は、必要な時間だけ利用し、開発環境の管理や作成する手間を削減します。
先進機能の開発に最新技術を活用は、専門の技術知識がなくても扱えるマネージドサービスが提供されています。たとえば、大規模なデータを収集・分析するサービス、機械学習や推論を行うサービス、生成AIを活用してコードの生成とレビューを行うサービスなど豊富にあります。
本セッションでは、仮想ECUによるハードウェアに依存しない開発および柔軟でオンデマンドな開発環境の2つをソリューションと事例を交えながら紹介していきます。
仮想ECUによるハードウェアに依存しない開発
さまざまな車載ECU
ひとつの車両に搭載されるECUには、Powertrain、IVI、ADASなどさまざな種類があります。 Powertrainは、エンジンが生み出す回転エネルギーを駆動輪に伝達するもので、リアルタイム性が求められます。IVIは、ドライバーや同乗者が必要とする情報やエンターテイメントを提供することで運転のサポートや快適さを向上させるものです。グラフィックスやUIが重視されます。ADAS(エイダス)は、自動運転、自動運転支援の機能です。複数の処理を同時かつ高速に処理する必要があるため、GPUやAIアクセラレーターが求められます。
Classic AUTOSARをベースにしたモデル開発
AWS上でAUTOSAR Classicプラットフォーム構成することでモデルべースの開発ができると述べられていました。開発のワークフローは4つに分けられます。
- ワークベンチ
- モデル検証(Mil:Model in the Loop)
- ソフトウェア検証(Sil:Software in the Loop)
- レポーティング
ワークベンチは開発環境のことです。必要な開発ツールやライブラリを導入します。ブラウザから仮想デスクトップで環境に接続します。モデル検証では、モデルをローカルでテストします。コミット&プッシュによりトリガーされ、テストが実行されます。ソフトウェア検証では、生成されたコードからECUモデルを生成し、ツールでシミュレーション用にバンドルされます。その後、テスト仕様に基づきソフトウェア検証を行います。最後のレポーティングでは、ワークベンチに公開されたレポートを確認、分析します。
このソリューションは、Githubで公開されています。
アーキテクチャ図は以下となります。
構成要素はおもに3つに分類できます。
- EC2(ワークベンチ)
- CI/CDパイプライン(Code系サービス)
- S3(各種レポートや成果物を保存)
セッションではソリューションを用いたデモが披露されました。ワークフローに接続し、設定を変更しコミットして変更をプッシュすることで、CodePipeline画面でパイプラインが走り、テストが実行されていきました。あえて失敗した例を見せて、実行ログを確認して、設定を変更し再びプッシュすることでソフトウェアの検証まで成功したことを確認できました。
車載システムと同等の環境をクラウドで再現
ARMプロセッサを搭載するSoCの車両を再現したい場合、同じARMベースであるAWS Gravitonを搭載したEC2インスタンスを選択します。そして車両と同じOSを稼働させることで、実車両のコンポーネントが持つ特性や制約、振る舞いをクラウドで再現できます。車両に搭載されるSoCとクラウドで実現された実行環境が同等であることを環境パリティと呼びます。
OSとして、BlackBerry QNX OSが導入されたAMI(7.X、8.X)が提供されており、これを指定してEC2を起動することでQNX OSをネイティブに実行できます。EC2上で実行されるため、ほかのEC2と同様にネットワーク構成やセキュリティ設定が行えます。EC2を複数台起動することで大規模なテストができ、CI/CDへの組み込みや、パートナーと連携したワークフローを組むことも可能であるとのことです。
QNX OSとQNX SDPによる開発を実現できるワークショップもGitHub上に公開されています。
アーキテクチャ図は以下となります。
引用:https://catalog.workshops.aws/qnx-on-aws/ja-JP/01-introduction
BMWの次世代車両開発での取り組み
BMW社では、次世代車両開発において、次の悩みを抱えていました。
- 車両データを継続的に取得して、継続的な改善を行いたい
- 機械学習の推論処理が重いため、スピードが出ない
これを解決するアプローチとして、Qualcommとタッグを組み、Amazon EC2 DL2qというEC2のインスタンスタイプを開発しました。これによってクラウドAI推論アクセラレーターを実現し、処理の高速化を実現できたとのことです。
柔軟でオンデマンドな開発環境
Virtual Engineering Workbench
Virtual Engineering Workbenchとは、標準化された自動車ソフトウェア開発環境を用途に応じて柔軟に提供するソリューションです。
ステランティス社の事例が取り上げられていました。ステランティス社では、数千人の開発者に均一の開発環境を提供する必要があり、開発環境を作るだけで数週間もかかっているという問題がありました。
これを改善するために、AWSとステランティス社でこのソリューションを共同で開発しました。ステランティス社が自動車ソフトウェア開発や開発ワークフローの部分を担い、AWSはクラウド技術やベストプラクティス、さらにはイノベーションカルチャーなども含めた支援を行ったようです。
このソリューションにより、オンボーディングに必要な時間を短縮できました。自動で開発環境が構築、提供されるため、ヒューマンリソースの削減にも成功したようです。この取り組みは以下のビデオでも紹介されています。
AWS re:Invent 2022 - Automotive development tool chains (AUT203) - YouTube
ソリューションの構成
Virtual Engineering Workbenchソリューションは、専用のポータルサイトが立ち上がり、そこから操作していく形です。
ソリューションは3つのコンポーネントで構成されています。
- ツール(生産性向上)
- ターゲット(ソフトウェアとハードウェアのブリッジ)
- 環境(機能検証の基盤)
ソリューションは以下のワープショップから体験できます。
ワークショップ:AUT301 | Automotive software development: The virtual engineering workbench
ペルソナは大きく管理者とソフトウェア開発者に分けられます。管理者は、開発ツールやターゲットを構築し、開発環境の運用をサポートします。 ソフトウェア開発者は、Adaptive AUTOSARでアプリを開発し、仮想ターゲットを実行するECUソフトウェアの開発者。もしくは、QNX Momenticsでアプリを開発し仮想ターゲットを実行するインフォテイメント開発者を想定しています。
デモが披露され、ポータルにログインして開発環境およびターゲット環境を払い出します。開発者は払い出された環境をいくつかある接続方法から最適なものを選びアクセスします。するとデスクトップ画面が表示され、セットアップ済みのツールを起動できます。開発者はアプリケーションの開発、更新を行います。その後、ビルドされたバイナリをターゲット上にデプロイして動作を確認する模様を確認できました。
セッションのまとめとして、SDVはまだ始まったばかりですが、AWSはさまざまなパートナーと協力して新たなソリューションを開発しており、今後の展開にご期待くださいとのことでした。ソリューションは公開されているので試してみることをおすすめし、AWSにコンタクトを取ることをご検討くださいと述べられていました。また、今回紹介できなかった先進機能の開発について展示ブースで詳しく紹介していますと語っていました。
ブースのレポート
展示ブースについては、弊社佐藤によるレポートブログがございますので、こちらも合わせてご覧ください。
感想
自動車ソフトウェア開発に関わったことがないのですが、なんとなく興味を惹かれて受講したセッションでした。初見のキーワードにあふれていて、ついていけるか不安でしたが、アーキテクチャ図やデモなど丁寧な説明で戸惑うことなく聞けました。 ステランティス社はプジョーやシトロエン、ランチアなどを擁するグループで、話を聞きながらWRCラリーカーをなぜか思い浮かべました。ターマックの鬼と呼ばれたラリードライバー、ディディエ・オリオールが「速く走るコツはなんですか?」と聞かれたときに「よく分かりません」と答えた有名なエピソードがあります。当時はなんでだよと笑ってしまいましたが、多数のエンジニアによって完璧にセットアップされたマシン(ラリーカー)を信頼をしているからこそあの発言をしたのかもしれません。 今回紹介されたソリューションは、負担や手間となっている部分を担ってくれることでより開発に集中できる素晴らしいものだと言えます。また、AWSの共同開発の取り組みは単なるクラウドサービス提供に留まらない姿勢で学ぶべきであると感じました。